home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / gtk-2.0 / gtk / gtktreemodel.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-04-25  |  11.1 KB  |  268 lines

  1. /* gtktreemodel.h
  2.  * Copyright (C) 2000  Red Hat, Inc.,  Jonathan Blandford <jrb@redhat.com>
  3.  *
  4.  * This library is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU Library General Public
  6.  * License as published by the Free Software Foundation; either
  7.  * version 2 of the License, or (at your option) any later version.
  8.  *
  9.  * This library is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.  * Library General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU Library General Public
  15.  * License along with this library; if not, write to the
  16.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  17.  * Boston, MA 02111-1307, USA.
  18.  */
  19.  
  20. #ifndef __GTK_TREE_MODEL_H__
  21. #define __GTK_TREE_MODEL_H__
  22.  
  23. #include <glib-object.h>
  24.  
  25. /* Not needed, retained for compatibility -Yosh */
  26. #include <gtk/gtkobject.h>
  27.  
  28. G_BEGIN_DECLS
  29.  
  30. #define GTK_TYPE_TREE_MODEL            (gtk_tree_model_get_type ())
  31. #define GTK_TREE_MODEL(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_MODEL, GtkTreeModel))
  32. #define GTK_IS_TREE_MODEL(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_MODEL))
  33. #define GTK_TREE_MODEL_GET_IFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_TREE_MODEL, GtkTreeModelIface))
  34.  
  35. #define GTK_TYPE_TREE_ITER             (gtk_tree_iter_get_type ())
  36. #define GTK_TYPE_TREE_PATH             (gtk_tree_path_get_type ())
  37. #define GTK_TYPE_TREE_ROW_REFERENCE    (gtk_tree_row_reference_get_type ())
  38.  
  39. typedef struct _GtkTreeIter         GtkTreeIter;
  40. typedef struct _GtkTreePath         GtkTreePath;
  41. typedef struct _GtkTreeRowReference GtkTreeRowReference;
  42. typedef struct _GtkTreeModel        GtkTreeModel; /* Dummy typedef */
  43. typedef struct _GtkTreeModelIface   GtkTreeModelIface;
  44. typedef gboolean (* GtkTreeModelForeachFunc) (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data);
  45.  
  46.  
  47. typedef enum
  48. {
  49.   GTK_TREE_MODEL_ITERS_PERSIST = 1 << 0,
  50.   GTK_TREE_MODEL_LIST_ONLY = 1 << 1
  51. } GtkTreeModelFlags;
  52.  
  53. struct _GtkTreeIter
  54. {
  55.   gint stamp;
  56.   gpointer user_data;
  57.   gpointer user_data2;
  58.   gpointer user_data3;
  59. };
  60.  
  61. struct _GtkTreeModelIface
  62. {
  63.   GTypeInterface g_iface;
  64.  
  65.   /* Signals */
  66.   void         (* row_changed)           (GtkTreeModel *tree_model,
  67.                       GtkTreePath  *path,
  68.                       GtkTreeIter  *iter);
  69.   void         (* row_inserted)          (GtkTreeModel *tree_model,
  70.                       GtkTreePath  *path,
  71.                       GtkTreeIter  *iter);
  72.   void         (* row_has_child_toggled) (GtkTreeModel *tree_model,
  73.                       GtkTreePath  *path,
  74.                       GtkTreeIter  *iter);
  75.   void         (* row_deleted)           (GtkTreeModel *tree_model,
  76.                       GtkTreePath  *path);
  77.   void         (* rows_reordered)        (GtkTreeModel *tree_model,
  78.                       GtkTreePath  *path,
  79.                       GtkTreeIter  *iter,
  80.                       gint         *new_order);
  81.  
  82.   /* Virtual Table */
  83.   GtkTreeModelFlags (* get_flags)  (GtkTreeModel *tree_model);   
  84.  
  85.   gint         (* get_n_columns)   (GtkTreeModel *tree_model);
  86.   GType        (* get_column_type) (GtkTreeModel *tree_model,
  87.                     gint          index_);
  88.   gboolean     (* get_iter)        (GtkTreeModel *tree_model,
  89.                     GtkTreeIter  *iter,
  90.                     GtkTreePath  *path);
  91.   GtkTreePath *(* get_path)        (GtkTreeModel *tree_model,
  92.                     GtkTreeIter  *iter);
  93.   void         (* get_value)       (GtkTreeModel *tree_model,
  94.                     GtkTreeIter  *iter,
  95.                     gint          column,
  96.                     GValue       *value);
  97.   gboolean     (* iter_next)       (GtkTreeModel *tree_model,
  98.                     GtkTreeIter  *iter);
  99.   gboolean     (* iter_children)   (GtkTreeModel *tree_model,
  100.                     GtkTreeIter  *iter,
  101.                     GtkTreeIter  *parent);
  102.   gboolean     (* iter_has_child)  (GtkTreeModel *tree_model,
  103.                     GtkTreeIter  *iter);
  104.   gint         (* iter_n_children) (GtkTreeModel *tree_model,
  105.                     GtkTreeIter  *iter);
  106.   gboolean     (* iter_nth_child)  (GtkTreeModel *tree_model,
  107.                     GtkTreeIter  *iter,
  108.                     GtkTreeIter  *parent,
  109.                     gint          n);
  110.   gboolean     (* iter_parent)     (GtkTreeModel *tree_model,
  111.                     GtkTreeIter  *iter,
  112.                     GtkTreeIter  *child);
  113.   void         (* ref_node)        (GtkTreeModel *tree_model,
  114.                     GtkTreeIter  *iter);
  115.   void         (* unref_node)      (GtkTreeModel *tree_model,
  116.                     GtkTreeIter  *iter);
  117. };
  118.  
  119.  
  120. /* GtkTreePath operations */
  121. GtkTreePath *gtk_tree_path_new              (void);
  122. GtkTreePath *gtk_tree_path_new_from_string  (const gchar       *path);
  123. GtkTreePath *gtk_tree_path_new_from_indices (gint               first_index,
  124.                          ...);
  125. gchar       *gtk_tree_path_to_string        (GtkTreePath       *path);
  126. GtkTreePath *gtk_tree_path_new_first        (void);
  127. void         gtk_tree_path_append_index     (GtkTreePath       *path,
  128.                          gint               index_);
  129. void         gtk_tree_path_prepend_index    (GtkTreePath       *path,
  130.                          gint               index_);
  131. gint         gtk_tree_path_get_depth        (GtkTreePath       *path);
  132. gint        *gtk_tree_path_get_indices      (GtkTreePath       *path);
  133. void         gtk_tree_path_free             (GtkTreePath       *path);
  134. GtkTreePath *gtk_tree_path_copy             (const GtkTreePath *path);
  135. GType        gtk_tree_path_get_type         (void) G_GNUC_CONST;
  136. gint         gtk_tree_path_compare          (const GtkTreePath *a,
  137.                          const GtkTreePath *b);
  138. void         gtk_tree_path_next             (GtkTreePath       *path);
  139. gboolean     gtk_tree_path_prev             (GtkTreePath       *path);
  140. gboolean     gtk_tree_path_up               (GtkTreePath       *path);
  141. void         gtk_tree_path_down             (GtkTreePath       *path);
  142.  
  143. gboolean     gtk_tree_path_is_ancestor      (GtkTreePath       *path,
  144.                                              GtkTreePath       *descendant);
  145. gboolean     gtk_tree_path_is_descendant    (GtkTreePath       *path,
  146.                                              GtkTreePath       *ancestor);
  147.  
  148. #ifndef GTK_DISABLE_DEPRECATED
  149. #define gtk_tree_path_new_root() gtk_tree_path_new_first()
  150. #endif /* !GTK_DISABLE_DEPRECATED */
  151.  
  152. /* Row reference (an object that tracks model changes so it refers to the same
  153.  * row always; a path refers to a position, not a fixed row).  You almost always
  154.  * want to call gtk_tree_row_reference_new.
  155.  */
  156.  
  157. GType                gtk_tree_row_reference_get_type (void) G_GNUC_CONST;
  158. GtkTreeRowReference *gtk_tree_row_reference_new       (GtkTreeModel        *model,
  159.                                GtkTreePath         *path);
  160. GtkTreeRowReference *gtk_tree_row_reference_new_proxy (GObject             *proxy,
  161.                                GtkTreeModel        *model,
  162.                                GtkTreePath         *path);
  163. GtkTreePath         *gtk_tree_row_reference_get_path  (GtkTreeRowReference *reference);
  164. GtkTreeModel        *gtk_tree_row_reference_get_model (GtkTreeRowReference *reference);
  165. gboolean             gtk_tree_row_reference_valid     (GtkTreeRowReference *reference);
  166. GtkTreeRowReference *gtk_tree_row_reference_copy      (GtkTreeRowReference *reference);
  167. void                 gtk_tree_row_reference_free      (GtkTreeRowReference *reference);
  168. /* These two functions are only needed if you created the row reference with a
  169.  * proxy object */
  170. void                 gtk_tree_row_reference_inserted  (GObject     *proxy,
  171.                                GtkTreePath *path);
  172. void                 gtk_tree_row_reference_deleted   (GObject     *proxy,
  173.                                GtkTreePath *path);
  174. void                 gtk_tree_row_reference_reordered (GObject     *proxy,
  175.                                GtkTreePath *path,
  176.                                GtkTreeIter *iter,
  177.                                gint        *new_order);
  178.                                
  179. /* GtkTreeIter operations */
  180. GtkTreeIter *     gtk_tree_iter_copy             (GtkTreeIter  *iter);
  181. void              gtk_tree_iter_free             (GtkTreeIter  *iter);
  182. GType             gtk_tree_iter_get_type         (void) G_GNUC_CONST;
  183.  
  184. GType             gtk_tree_model_get_type        (void) G_GNUC_CONST;
  185. GtkTreeModelFlags gtk_tree_model_get_flags       (GtkTreeModel *tree_model);
  186. gint              gtk_tree_model_get_n_columns   (GtkTreeModel *tree_model);
  187. GType             gtk_tree_model_get_column_type (GtkTreeModel *tree_model,
  188.                           gint          index_);
  189.  
  190.  
  191. /* Iterator movement */
  192. gboolean          gtk_tree_model_get_iter        (GtkTreeModel *tree_model,
  193.                           GtkTreeIter  *iter,
  194.                           GtkTreePath  *path);
  195. gboolean          gtk_tree_model_get_iter_from_string (GtkTreeModel *tree_model,
  196.                                GtkTreeIter  *iter,
  197.                                const gchar  *path_string);
  198. gchar *           gtk_tree_model_get_string_from_iter (GtkTreeModel *tree_model,
  199.                                                        GtkTreeIter  *iter);
  200. gboolean          gtk_tree_model_get_iter_first  (GtkTreeModel *tree_model,
  201.                           GtkTreeIter  *iter);
  202. GtkTreePath *     gtk_tree_model_get_path        (GtkTreeModel *tree_model,
  203.                           GtkTreeIter  *iter);
  204. void              gtk_tree_model_get_value       (GtkTreeModel *tree_model,
  205.                           GtkTreeIter  *iter,
  206.                           gint          column,
  207.                           GValue       *value);
  208. gboolean          gtk_tree_model_iter_next       (GtkTreeModel *tree_model,
  209.                           GtkTreeIter  *iter);
  210. gboolean          gtk_tree_model_iter_children   (GtkTreeModel *tree_model,
  211.                           GtkTreeIter  *iter,
  212.                           GtkTreeIter  *parent);
  213. gboolean          gtk_tree_model_iter_has_child  (GtkTreeModel *tree_model,
  214.                           GtkTreeIter  *iter);
  215. gint              gtk_tree_model_iter_n_children (GtkTreeModel *tree_model,
  216.                           GtkTreeIter  *iter);
  217. gboolean          gtk_tree_model_iter_nth_child  (GtkTreeModel *tree_model,
  218.                           GtkTreeIter  *iter,
  219.                           GtkTreeIter  *parent,
  220.                           gint          n);
  221. gboolean          gtk_tree_model_iter_parent     (GtkTreeModel *tree_model,
  222.                           GtkTreeIter  *iter,
  223.                           GtkTreeIter  *child);
  224. void              gtk_tree_model_ref_node        (GtkTreeModel *tree_model,
  225.                           GtkTreeIter  *iter);
  226. void              gtk_tree_model_unref_node      (GtkTreeModel *tree_model,
  227.                           GtkTreeIter  *iter);
  228. void              gtk_tree_model_get             (GtkTreeModel *tree_model,
  229.                           GtkTreeIter  *iter,
  230.                           ...);
  231. void              gtk_tree_model_get_valist      (GtkTreeModel *tree_model,
  232.                           GtkTreeIter  *iter,
  233.                           va_list       var_args);
  234.  
  235.  
  236. void              gtk_tree_model_foreach         (GtkTreeModel            *model,
  237.                           GtkTreeModelForeachFunc  func,
  238.                           gpointer                 user_data);
  239.  
  240.  
  241. #ifndef GTK_DISABLE_DEPRECATED
  242. #define gtk_tree_model_get_iter_root(tree_model, iter) gtk_tree_model_get_iter_first(tree_model, iter)
  243. #endif /* !GTK_DISABLE_DEPRECATED */
  244.  
  245. /* Signals */
  246. void gtk_tree_model_row_changed           (GtkTreeModel *tree_model,
  247.                        GtkTreePath  *path,
  248.                        GtkTreeIter  *iter);
  249. void gtk_tree_model_row_inserted          (GtkTreeModel *tree_model,
  250.                        GtkTreePath  *path,
  251.                        GtkTreeIter  *iter);
  252. void gtk_tree_model_row_has_child_toggled (GtkTreeModel *tree_model,
  253.                        GtkTreePath  *path,
  254.                        GtkTreeIter  *iter);
  255. void gtk_tree_model_row_deleted           (GtkTreeModel *tree_model,
  256.                        GtkTreePath  *path);
  257. void gtk_tree_model_rows_reordered        (GtkTreeModel *tree_model,
  258.                        GtkTreePath  *path,
  259.                        GtkTreeIter  *iter,
  260.                        gint         *new_order);
  261.  
  262.  
  263.  
  264.  
  265. G_END_DECLS
  266.  
  267. #endif /* __GTK_TREE_MODEL_H__ */
  268.